5 research outputs found
Accelerating software test execution using GPUs
Today, software is all around us, impacting our everyday lives in fundamental ways.
Developing software whose behaviour is reliable, predictable and correct is therefore
crucial. This has made software testing a critical part of the development process
and has led to the emergence of rigorous testing practices and standards. Testing any
non-trivial system, however, is time-consuming and takes up the bulk of development
time. Modern software engineering practices involve the repeated execution of large test
suites, as part of regular build, test and release cycles. A common approach to speeding
up testing without sacrificing rigour is distributing test executions among computer
clusters and cloud servers, but this can be complex and expensive due to the costs of
testing infrastructure and energy consumption.
This thesis presents a novel approach to accelerating test execution by parallelising it
using Graphics Processing Units (GPUs) - powerful and low-cost hardware accelerators
that are readily available in the majority of modern desktops. It demonstrates that GPUs
can be used to dramatically reduce test execution time at a lower cost compared to
other parallel approaches. To achieve this, it addresses significant challenges related to
usability, performance and scope, and makes three separate contributions:
First, a GPU testing framework, ParTeCL, is developed to automatically transform
the system under test into GPU source code and launch test execution in parallel on
the GPU threads. ParTeCL performs the entire testing process transparently without
requiring any expert GPU programming and architecture knowledge.
Second, two types of systems are used to evaluate the applicability and effectiveness
of the approach - sequential C programs form the embedded systems domain and Finite
State Machine (FSM) models. To enable testing them on the GPU, compiler-based
transformations and FSM implementations are developed and included in ParTeCL.
Finally, GPU performance is extensively analysed and optimised through a combination of standard and domain specific techniques. Evaluation on programs from
the two domains demonstrates that the GPU outperforms a standard 16-core Central
Processing Unit (CPU) by up to 4× (avg. 1.4×) for embedded systems and up to 9×(avg. 4.5×) for FSMs.
The techniques developed in this thesis demonstrate the exciting possibilities of
using specialised hardware architectures, such as GPUs, for the acceleration of software
test execution. Through integration into the testing process, they could provide rapid
feedback, reducing the amount of costly bug-fixing in later stages of development